42. Trapping Rain Water - LeetCode Solution


Array Stack

Python Code:

class Solution:
    def trap(self, height: List[int]) -> int:
        maxl = []
        maxr = []
        if(len(height) == 0):
            return 0

        maxl.append(height[-1])
        maxr.append(height[0])

        for i in range(1, len(height), 1):
            maxr.append(max(height[i], maxr[-1]))


        for i in range(len(height) - 2, -1, -1):
            maxl.append(max(height[i], maxl[-1]))


        count = 0

        maxl.reverse()


        for i in range(len(height)):
            count+= min(maxr[i], maxl[i]) - height[i]

        return count


Comments

Submit
0 Comments
More Questions

1582C - Grandma Capa Knits a Scarf
492A - Vanya and Cubes
217A - Ice Skating
270A - Fancy Fence
181A - Series of Crimes
1638A - Reverse
1654C - Alice and the Cake
369A - Valera and Plates
1626A - Equidistant Letters
977D - Divide by three multiply by two
1654B - Prefix Removals
1654A - Maximum Cake Tastiness
1649A - Game
139A - Petr and Book
1612A - Distance
520A - Pangram
124A - The number of positions
1041A - Heist
901A - Hashing Trees
1283A - Minutes Before the New Year
1654D - Potion Brewing Class
1107B - Digital root
25A - IQ test
785A - Anton and Polyhedrons
1542B - Plus and Multiply
306A - Candies
1651C - Fault-tolerant Network
870A - Search for Pretty Integers
1174A - Ehab Fails to Be Thanos
1169A - Circle Metro